import { BaseSocket } from './baseSocket';

/**
 * 模型布线
 */
export class ModelLayout extends BaseSocket {
  /**
   * 连线投影、测地线、轨迹线 生成
   * @param params
   * @returns
   */
  async createCurve(params: {
    root: string;
    type: 'vertical' | 'geodesic' | 'track' | string;
    fidx: number[]; // 三角面的index
    points: number[]; // 与三角面片的交点，三个一组，和fidx对应
    normal?: number[]; // 平面的法向，type==vertical需要
  }) {
    return await this.execCmd({
      c: 'shape.CreateCurve',
      a: params,
    });
  }

  /**
   * 曲线优化  生成的曲线进行光滑化
   * @param params
   * @returns
   */
  async SmoothCurve(params: {
    curve: string; // 拾取的曲线dxid
  }) {
    return await this.execCmd({
      c: 'shape.SmoothCurve',
      a: params,
    });
  }
}
